package com.lzy.crm.dao;


import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.lzy.crm.base.mybatis.BaseMapper;
import com.lzy.crm.base.page.PageQuery;
import com.lzy.crm.dao.criteria.UserCriteria;
import com.lzy.crm.domain.User;
import com.lzy.crm.vo.CardVo;
import com.lzy.crm.vo.PlayerInfo;


public interface UserMapper extends BaseMapper<User, UserCriteria>{

	
	public List<User> getNextUserList(@Param("userId")Integer userId,@Param("phone")String phone,@Param("status")String status,@Param("pageQuery")PageQuery pageQuery);
	
	
	
	
	public List<User> getUserListByGameId(@Param("gameUserId")String gameId);
	
	/**
	 *  查询所有用户信息
	 * @param userId
	 * @param phone
	 * @param status
	 * @param pageQuery
	 * @return
	 */
	public List<User> getAllAgentUserList(@Param("userId")Integer userId,@Param("phone")String phone,@Param("status")String status,@Param("pageQuery")PageQuery pageQuery);
	
	
	
	/**
	 * 查询下级玩家
	 * @param parentId
	 * @param upParentId
	 * gameUserId
	 * @return
	 */
	public List<User> getAllPlayerUserList(@Param("parentId")Integer parentId ,@Param("upParentId")Integer upParentId ,@Param("gameUserId")String gameUserId,@Param("pageQuery")PageQuery pageQuery);
	
	
	
	/**
	 * 跨库查询20 条玩家信息
	 * @param userId
	 * @param pageQuery
	 * @return
	 */
	public List<PlayerInfo> getPlayerInfoList(@Param("gameId")String gameId);
	
	/**
	 * 查询单个玩家信息
	 * @param userId
	 * @return
	 */
	public PlayerInfo getPlayerInfo(@Param("gameId")Integer gameId,@Param("unionId")String unionId);
	
	/**
	 * 给玩家加房卡
	 * @param userId
	 * @param insureScore  购买的数量
	 */
	public void addPlayerCard(@Param("userId")Integer userId,@Param("insureScore")Integer insureScore);
	
	/**
	 * 玩家替换房卡数
	 * @param userId
	 * @param insureScore  卖了之后的数量
	 */
	public void sellPlayerCard(@Param("userId")Integer userId,@Param("insureScore")Integer insureScore);
	
	/**
	 * 查询下级人数
	 * @param userId
	 * @return
	 */
	public Integer getNextUserCount(@Param("userId")Integer userId);
	
	/**
	 * 查看该用户销售明细
	 * @param userId
	 * @return
	 */
	public CardVo getCardTot(@Param("userId")Integer userId);
	
	
	
	/**
	 * 清除玩家游戏问题
	 * @param gameId
	 */
	public void unlockPayerByGameId(@Param("gameId")String gameId);
	
	
	/**
	 * 清除玩家游戏牌圈锁表
	 * @param gameId
	 */
	public void unlockPlayerInRoomInfoByGameId(@Param("gameId")String gameId);
	
	
	
	/**
	 * 清除表
	 */
	public void unlockTable();
	
	/**
	 * 清除玩家游戏牌圈锁表
	 * @param gameId
	 */
	public void unlockPlayerInRoomInfo();
}
